﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace InterfacesTransformation
{
    public interface IWordSegmentor
    {
        /// <summary>
        /// The host which manages plugins
        /// </summary>
        IHost PluginHost { get; set; }
        /// <summary>
        /// The name of the plugin
        /// </summary>
        string PluginName { get; }
        /// <summary>
        /// The user control of the plugin
        /// </summary>
        UserControl PluginUserControl { get; }
        /// <summary>
        /// Initialize needed things for the plugin
        /// </summary>
        void Initialize();
        /// <summary>
        /// Dispose the plugin
        /// </summary>
        void PluginDispose();

        /// <summary>
        /// Segment the inputStr into words
        /// </summary>
        /// <param name="inputStr">The input string that needs segmenting</param>
        /// <returns>The segmented string</returns>
        string Segment(string inputStr);

        /// <summary>
        /// Segment the list of string into words
        /// </summary>
        /// <param name="inputStrList">The list of input strings that needs segmenting</param>
        /// <returns>The list of segmented strings</returns>
        List<string> Segment(List<string> inputStrList);
    }
}
